package interfaz;

import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

import modelo.CentroEstudios;
import modelo.Usuario;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class VLogin extends JFrame {

	private final JPanel contentPanel = new JPanel();
	private JTextField txtUsuario;
	private JPasswordField txtPass;
	private CentroEstudios centroEstudios;

	/**
	 * Create the dialog.
	 * @param centroEstudios 
	 */
	public VLogin(CentroEstudios centroEstudios) {
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				VLogin.this.centroEstudios.cerrarConexion();
			}
		});

		this.centroEstudios = centroEstudios;
		
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		getContentPane().setLayout(new BorderLayout());
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel, BorderLayout.CENTER);
		contentPanel.setLayout(null);
		
		JLabel lblLogin = new JLabel("LOGIN");
		lblLogin.setFont(new Font("Dialog", Font.BOLD, 22));
		lblLogin.setBounds(169, 12, 115, 27);
		contentPanel.add(lblLogin);
		
		JLabel lblUsuario = new JLabel("Usuario:");
		lblUsuario.setBounds(100, 114, 70, 15);
		contentPanel.add(lblUsuario);
		
		JLabel lblNewLabel = new JLabel("Contraseña:");
		lblNewLabel.setBounds(100, 141, 94, 15);
		contentPanel.add(lblNewLabel);
		
		txtUsuario = new JTextField();
		txtUsuario.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				// Programar el botón "intro" en la caja de texto para que envíe el mensaje
				if (e.getKeyCode()==KeyEvent.VK_ENTER){
					Usuario usu = VLogin.this.centroEstudios.comprobarUsuario(txtUsuario.getText(), txtPass.getText());
					if(usu!=null){
						JOptionPane.showMessageDialog(null, "Bienvenido al sistema.");
						VMain vMain = new VMain(VLogin.this.centroEstudios, usu);
						VLogin.this.dispose();
						vMain.setVisible(true);
					}else{
						JOptionPane.showMessageDialog(null, "Introduzca bien los datos.");
					}
				}
			}
		});
		txtUsuario.setBounds(210, 112, 138, 19);
		contentPanel.add(txtUsuario);
		txtUsuario.setColumns(10);
		
		txtPass = new JPasswordField();
		txtPass.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent e) {
				// Programar el botón "intro" en la caja de texto para que envíe el mensaje
				if (e.getKeyCode()==KeyEvent.VK_ENTER){
					Usuario usu = VLogin.this.centroEstudios.comprobarUsuario(txtUsuario.getText(), txtPass.getText());
					if(usu!=null){
						JOptionPane.showMessageDialog(null, "Bienvenido al sistema.");
						VMain vMain = new VMain(VLogin.this.centroEstudios, usu);
						vMain.setVisible(true);
						VLogin.this.dispose();
					}else{
						JOptionPane.showMessageDialog(null, "Introduzca bien los datos.");
					}
				}
			}
		});
		txtPass.setColumns(10);
		txtPass.setBounds(210, 139, 138, 19);
		contentPanel.add(txtPass);
		
		JButton btnAceptar = new JButton("Aceptar");
		btnAceptar.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				Usuario usu = VLogin.this.centroEstudios.comprobarUsuario(txtUsuario.getText(), txtPass.getText());
				if(usu!=null){
					System.out.println(usu.getClass());
					JOptionPane.showMessageDialog(null, "Bienvenido al sistema.");
					VMain vMain = new VMain(VLogin.this.centroEstudios, usu);
					vMain.setVisible(true);
					VLogin.this.dispose();
				}else{
					JOptionPane.showMessageDialog(null, "Introduzca bien los datos.");
				}
			}
		});
		btnAceptar.setBounds(79, 207, 117, 25);
		contentPanel.add(btnAceptar);
		
		JLabel lblNewLabel_1 = new JLabel("<html>Introduzca su usuario y contraseña<br>para acceder a la aplicación.</html>");
		lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1.setBounds(43, 51, 364, 45);
		contentPanel.add(lblNewLabel_1);
		
		JButton btnSalir = new JButton("Salir");
		btnSalir.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				VLogin.this.centroEstudios.cerrarConexion();
				VLogin.this.dispose();
				System.exit(0);
			}
		});
		btnSalir.setBounds(253, 207, 117, 25);
		contentPanel.add(btnSalir);
	}
}
